vimfandomcom-20200223-history
Did you know/2008
This is an archive of the Did you know section on the Main Page for 2008 (started in February 2008). December 2008 *[http://www.swaroopch.com/notes/Vim A Byte of Vim is a free ebook on Vim] *Vim 7.2 has been released *Visually-selected characters can be replaced to underline with dashes. *The sleep command with a recursive mapping allows automatic scrolling of text. *The command :set isfname+=32 allows gf to open file names with spaces. *Ctrl-[ and Alt-Space are suggested as alternatives to hitting Esc. *You can use syntax folding with Vim scripts. *A simple script allows folding in .ini files. *The command :%s//new/g performs a substitute using the last search. *Use :bufdo %s/old/new/ge to substitute in all buffers. *A substitute can swap the LHS and RHS of an assignment statement. *The xxd tool allows hex editing and improved hex editing. November 2008 *Vim 7.2 has been released *The command :0r foo.txt will insert a file before the first line. *The useful mark commands include `0 to jump to the position when Vim was last exited. *A simple script can number a group of lines. *More scripting can wrap text in HTML tags. *A plugin allows easy switching between source and header files. *It's handy to search and replace the word under the cursor. *Using :args *.c and :sall will load multiple files. *Quickly change words or lines with commands like ciw c$ cis. *Get an overview of your program using folds. *If needed, it's easy to reload your file in a different encoding. October 2008 *Vim 7.2 has been released *Mappings with expand("%:p:h") help working with files in the same directory. *When searching, \n is newline, \r is CR, but when replacing, \r is newline, \n is a null byte. *You can set, clear, invert, display, and restore a boolean option to its default. *Press . to repeat the last change. *With the right commands, you can swap characters, words and lines. *There are many settings for working with Unicode, and handling BOM markers. *A modeline can configure options for a particular file. *A mapping can jump to where a Perl function is defined (without tags). *You can fold sequences of two or more blank lines. *You can list lines containing a keyword and prompt to jump to a line. September 2008 *During an incremental search, you can press Ctrl-L to insert the next character from the match. *A syntax command can highlight doubled word errors (if you repeat repeat a word). *Setting foldexpr allows you to fold everything except for matches to your search. *Ctrl-A and Ctrl-X will increment and decrement numbers. *gf and friends can open the file under the cursor, optionally in a new window. *Some keys can delete text, and you can't undo, but you can recover and avoid the problem. *Ctrl-R can insert a register or word in insert mode and the command line. *You can format text with built-in commands, or an external program. *Some mappings make it easy to copy the name of the current file to the clipboard. *You can remove one mark or all marks. August 2008 *A modeline can't set the file encoding, but UTF-8 Vim can read Latin1 as Latin1. *Using :set diffopt+=iwhite will ignore white space in vimdiff. *Using set t_Co=256 will enable 256 colors under xterm. *Under Mac OS X, using a script can open files from the command line in the same window. *Using :set laststatus=2 will always show the status line. *You can save typing by using abbreviations. *The vis.vim plugin is useful for applying :substitute to a blockwise visual selection. *Learning the standard movement keys saves time when moving around. *It's worth learning how to work with Vim buffers. *Move ahead of the masses by using Ctrl-o and Ctrl-i. July 2008 *Press gd or gD to jump to the declaration of a local or global variable. *Press Ctrl-o or Ctrl-i to jump to previously visited locations (older/newer). *In gvim, 'guioptions' can hide the toolbar and menu. *Programmers should learn to browse with tags. *Use 'formatoptions' to control text formatting including the automatic insertion of comments. *The command :g/^\s*$/d will remove all blank lines. *The command :g//d will delete all lines containing the last search pattern. *There are several methods to change the indentation of a block of lines. *A mapping can change the Home key to move to the first character, or the first that is nonblank. *Filtering and redirection can capture output from Vim or external programs. June 2008 *HTML sections in PHP can be auto-indented. *It's easy to change between backslash and forward slash in a file path. *If you create your own tags file, you can [[VimTip601|jump to the correct line and column]]. *If you work with many files, it's easy to save them all with :wa or :xa. *Substituting with an expression allows a file to be sorted based on the number of words in each line. *Simple substitutes or a Perl script can convert text using HTML entities like >. *The command :g/^/exe ".w ".line(".").".txt" saves each line in the buffer to a separate file. *:g// lists all lines containing the last search pattern, and :redir will capture the results. *Some menu commands make beautifying code easy. *With set browsedir=buffer the File, Open dialog defaults to the current file's directory. May 2008 *A user-defined command can evaluate :Calc sin(pi/2). *It's sometimes better to ''not'' use the slash delimiter for :s/old/new/. *You can drag & drop one or more files into gvim. *Use register @/ to execute commands without changing the search register. *You can map a key to to disable an unwanted key. *When substituting, the replacement can be the result of an expression. *With a good regex, you can change all HTML tags to lowercase. *input() can read an HTML tag to wrap around a visual selection. *Use vat to select a tag block, then da> to delete the tags. *Vim can display a lot more than ASCII characters! April 2008 *The shortmess and cmdheight options allow you to avoid "Hit Enter to continue" prompts. *An option controls how backspace and other delete keys work in insert mode. *You can display line numbers and change the width of the number column. *It's easy to change text between lowercase and UPPERCASE. *The command history allows you to repeat several commands, possibly after editing them. *@: will repeat a colon (Ex) command (and @@ will repeat again). *You can use :g/^\s*$/;//-1sort to sort each block of lines in a file. *It's useful to map . .`[ to repeat the last command and put the cursor at start of change. *You can open a web browser with the URL in the current line. *With --remote-send you can close a Vim you left open remotely. *If you're used to Perl regex, you can use Perl compatible regular expressions. *In insert mode, Ctrl-Y inserts the character above. You can make it insert the word above. March 2008 *There are many ways to search the help files. *You can modify the value of almost everything with the 'let' command. *The Best Vim Tips are in tip 305. *The status line can show your fileencoding and bomb. *There is more than one way to jump to line 42. *A tricky search can [[VimTip220|find text that does not match]]. *After typing a couple of characters, you can complete a word. *In a program, you can jump to the beginning or end of a code block. *With two related files in a vertical split, you can scroll both windows together. *A map using expand("%:p") can copy the current file path to the clipboard. *It's easy to count the words in a file or block. *You can even make a frequency table counting the occurrences of each word! February 2008 *You can press * to search for the current word. *To insert the next matching word, press Ctrl-N. *Use % to jump to the matching bracket, and more. *Ctrl-A can increment numbers. *You can wrap long lines while moving the cursor by screen lines. *Use :lcd %:p:h to change directory to the file in the current window. *ga shows the ascii value of the current character. *zz scrolls the current line to the middle of the screen; scrolloff can keep it there. *You can list changes to the current file, even old changes. *Non-US keyboards have lots of useful keys for normal-mode mappings. *Use za to toggle folds open/closed. *Vim can do calculations using Python, Perl or bc. Category:VimInformation